Error codes for products

ABSTRACT

An example system and method for generating an error code involve detecting an error condition of a product and generating an error code by combining information indicative of the detected error condition with an identifier associated with, the product.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of provisional U.S. Application No.60/765,171, filed Feb. 6, 2006, the contents of which are incorporatedherein in their entirety.

BACKGROUND AND SUMMARY

The subject patent application generally relates to error codes forproducts and, more specifically, to product- or user-specific errorscodes for products.

Error codes are often generated when hardware or software malfunctionsin some manner. For example, when a software application running on acomputer “crashes”, an error code providing an identifier indicative ofthe error may be provided on a display screen of the computer. Using theerror code, a user can consult documentation for the software todetermine the cause of the crash and suggested steps or procedures forrecovery. In other instances, the user can contact (e.g., by calling) acustomer service representative and provide the error code to therepresentative, who can use the error code to determine the cause of thecrash and lead the user through suggested steps or procedures forrecovery.

By way of illustration, various versions of Microsoft Windows operatingsystems generate so-called “blue screens of death” when there is asystem error. For example, when there is a boot loader error in whichthe operating system cannot access the boot partition, an error codelike the following is generated:

STOP 0x0000007B (INACCESSIBLE_BOOT_DEVICE).

Product documentation for this error code may suggest that the userattempt to recover from this error by booting the computer system usingthe media (e.g., CD-ROM) on which the operating system was provided.

The instant patent application describes the use of product- oruser-specific error codes which include information that identifies aparticular product or user, in addition to information indicative of theerror that caused a product (e.g., hardware or software) to malfunction,crash or otherwise become wholly or partly inoperable. Product- oruser-specific error codes can enable better and more efficient customerassistance because an assistance provider (e.g., documentation, acustomer-service representative, a voice-response unit, a web site,etc.) is able to provide assistance based, for example, on informationthat may be unique to the particular user or the user's product. Thepart of the error code that identifies a product or user may be used,for example, to automatically access a database that includesinformation regarding previous errors or problems associated with theuser's product or with the user.

By way of illustration, a particular software product may encountercertain types of errors more frequently when running on some hardwareplatforms than on others. By having an error code which includesinformation that identifies the hardware platform, assistance can bemore easily provided if the software product crashes. For example, acustomer service representative can assist a user in recovering from anerror using a “script” that is most likely to work for the user'sparticular product. This can reduce the amount of time a customerservice representative must spend with a particular user.

In addition, while a customer service representative can ask a user toverbally provide product information, information such as a product codemay not be readily available to the user and the search for suchinformation can increase the frustration level of a user whose productis not operating properly. Moreover, the search for such informationwhile on a call also increases the amount of time a customer servicerepresentative must spend with a particular user.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages will be better and morecompletely understood by referring to the following detailed descriptionof exemplary non-limiting illustrative embodiments in conjunction withthe drawings of which:

FIG. 1 is a block diagram of an example product in which error codes asdescribed herein may be implemented.

FIGS. 2 and 3 show a specific example of a game machine in which theerror codes described herein may be implemented.

FIG. 4 is a block diagram of example circuitry for the game machineshown in FIGS. 2 and 3.

FIG. 5 shows an example online game system.

FIG. 6 shows an example error message provided for the game machine ofFIGS. 2-4.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

The error codes described in this application can be used with varioustypes of products including vehicles (such as cars, trucks, etc.), homeappliances, game devices, televisions, computers, MP3 players, DVDplayers, set-top boxes, and the like. These products may be generallyarranged along the lines shown in FIG. 1 which shows a product 1 thatincludes processing circuitry 2 which controls the overall operation ofthe product. A memory 4 is accessible to the processing circuitry andstores an operating program and data used by the processing circuitry toeffect the aforementioned control. Memory 4 may include read/writememory for storing data during product operation (such as status data)and read-only memory for storing the operating program. Memory 4 mayinclude a combination of on-board and removable memory. The removablememory may be in the form of magnetic disks, memory cards, optical disksand the like. Input device(s) 6 such as a keypad, a joystick, atouch-sensitive screen, switches, buttons and the like provide inputs tothe processing circuitry 2. Output device(s) 7 such as displays,speakers, printers and the like provide outputs to a user.

Processing circuitry 2 controls controllable components 8 of the product1. These controllable components will of course vary from product toproduct. For example, in the case of a television, the controllablecomponents may include a tuner and decoding circuitry for decodingreceived audio and video data. In the case of an MP3 player, thecontrollable components may include audio playback circuitry for playingback songs stored in memory (e.g., memory 4).

The example product of FIG. 1 is shown as including input device(s),output device(s) and memory as components thereof. However, the productneed not include these elements as parts thereof, but instead may beconnectable to such elements. For example, a desktop computer need notinclude keypads, speakers or monitors as integral parts thereof, but thedesktop computer typically includes connectors or interfaces forconnecting to such elements in a wired or wireless manner.

In an example embodiment, processing circuitry 2 executes programinstructions for generating the error codes described herein. Theseprogram instructions may be provided in memory 4 (on-board or removableor both). A carrier wave may be modulated by a signal representing theprogram instructions. As will be explained in greater detail below, theprogram instructions, when executed by the processing circuitry, detectan error condition of the product and automatically generate an errorcode by combining information (e.g., an alphanumeric string) indicativeof the detected error condition with at least an identifier associatedwith the product or the user of the product.

The processing circuitry may monitor certain variables during operationof the product. These variables may be monitored using hardware,firmware and/or software. For example, detector(s) 9 such as temperaturedetectors, voltage and current detectors, or any other type of detectorsuitable for monitoring particular aspects of product operation may beused. If the variables monitored by these detector(s) fall outsidecertain limits as determined, for example, in software, an errorcondition may be detected. The processing circuitry itself may alsodetect errors by, for example, monitoring the availability of data whichis needed for proper operation of the product. For example, if theprocessing circuitry cannot load particular data needed for operation ofthe product, the processing circuitry may detect an error.

Based on the type of error detected, an error message is generated. Forexample, memory 4 of the product may include a database of errormessages associated with particular errors or types of errors. Asexplained in greater detail below, these error messages are output withan error code generated by combining information indicative of thedetected error condition with at least an identifier associated with theproduct or the user of the product.

By way of illustration without limitation, FIGS. 2-4 show a specificexample of a product in which the error codes described herein may beused.

Referring to FIGS. 2 and 3, a game device 10 includes a main body 12 anda cover body 14 hingedly connected to each other along an upper edge ofthe main body 12 and a lower edge of the cover body 14 (referencesherein to terms such as “upper” and “lower” and “forward” and “rearward”are for ease of understanding and are made relative to an orientation ofthe game device where the cover body 14 is in an open position and thegame device is being held by a user in a normal operating position).Hinge elements 16, 18 and 20 on the main body 12 mesh with hingeelements 22 and 24 on the cover body, with a hinge pin (not shown)extending through the aligned hinge elements in conventional fashion.Note that because hinge elements 16, 18 and 20 extend from the upper (orinner) face 26 of the main body 12, the cover body 14 overlies the upperface 26 when the cover body 14 is closed over the main body. When thecover body 14 is in its fully open position, it is substantiallyparallel to the main body 12 but lies in a substantially parallel,offset plane. The main body 12 also has a lower (or outer) face 28 (FIG.3) and a peripheral edge 30.

A first display screen 32 is recessed within the upper face 26 of themain body 12 with dimensions of approximately 2½ inches in length and 1⅞inches in width, yielding a diagonal screen dimension of 3 inches. Thescreen in the exemplary embodiment is a backlit, color liquid crystaldisplay (LCD). This screen is touch sensitive and may be activated by astylus or a finger. A power button 34 is located in the upper leftcorner of face 26 and is used to turn the game device 10 on and off. Across-shaped directional control button 36 is located adjacent and belowthe power button 34, and is used for game play control.

In the upper right corner of the main body 12, there are side-by-side“start” and “select” buttons 38, 40, respectively, with X/Y/A/B buttons42 located adjacent and below the “start” and select” buttons. Buttons38, 40 and 42 are also used for game play control. A microphone 44(which may, for example, be an omni-directional condenser microphone) islocated below the left edge of screen 32 for use with specially designedgames or other applications (e.g., voice chat) having a microphonefeature. A battery recharge indicator LED 46 and a power indicator LED48 are also located on the upper face 26, adjacent the lower edgethereof, below the right edge of screen 32.

A lower or forward portion of the peripheral edge 30 (closest to theuser) is provided with a volume control slide 52 and headphone andmicrophone connectors 54, 56 on either side of a first game slot 58. Inthe example portable game system, slot 58 is especially designed forlarger game cartridges or cards originally designed for use with theassignee's Game Boy Advance® game system. Of course, slot 58 may beotherwise designed.

As best seen in FIG. 3, an upper or rearward portion 60 of theperipheral edge 30 is provided with an external extension connector 62that permits connection to an AC adapter for recharging the internalbattery (not shown), or for operating the game using household power. Asecond game slot 64 in edge portion 60 is designed for receiving memoryor game cards especially designed for this example game system. Thesecond game slot 64 is smaller than the first game slot 58, reflectingthe different sizes of the game cards. Openings 66, 68 form anelbow-shaped through slot adapted for securing a wrist strap (notshown), thereby enabling the user to secure the game system to the bodyand thus minimize the potential for losing, misplacing or dropping thegame system. A stylus port or holder, in the form of a blind bore 70 islocated adjacent the wrist-strap mount for holding a stylus before orafter use.

A pair of left, right control buttons (or shoulder buttons) 72, 74 arelocated on a peripheral edge, at the corners where the upper portion 60of the peripheral edge meets the side portions 76, 78 of the peripheraledge. The location of these buttons and the location of previouslydescribed buttons 34, 36 and 42 facilitate manipulation game control bythe user's thumbs and index fingers when the game is held with two handsin a natural and intuitive manner.

The lower (or outer) face 28 of the main body is provided with a batterycover 80 (FIG. 2) for accessing a rechargeable battery pack locatedwithin the main body.

The cover body 14 also has an upper (or inner) face 82 (FIG. 2) and alower (or outer) face 84 (FIG. 3) connected by a peripheral edge 86. Theupper face 82 incorporates a second display screen 88 of substantiallythe same dimensions as screen 32. Screen 88 is also a backlit color LCD.The cover body 14 also incorporates a pair of stereo speakers, withspeaker grills 90, 92 located on opposite sides of the screen 88.Dimples or pads 94, 96 may be located above and laterally of screen 88.The dimples may be made of a compressible polymer or other suitablematerial and serve to dampen engagement of the inner surface 82 of thecover body 14 with the inner surface 26 of the main body 12 when thecover body is closed over the main body. In this example portable gamesystem, screen 88 is not provided with a touch panel structure. Ofcourse, screen 88 may, if desired, be provided with a touch panelstructure that extends over all, substantially all, or a part of thedisplay screen.

FIG. 4 is a block diagram of a portion of example electronic circuitryfor game device 10. An electronic circuit board accommodated in ahousing of game device 10 includes a CPU core 921 mounted thereon. TheCPU core 921 is connected through a predetermined path to a connector928 for connection to the cartridge 817, and also connected to an inputand output interface (I/F) circuit 927, a first graphics processing unit(GPU) 924, a second GPU 926, and a working RAM (WRAM) 922.

The cartridge 817 is detachably connected to the connector 928.Cartridge 817 is a storage medium having a program stored therein, andspecifically includes a ROM 971 in which the program is stored and a RAM972 for storing backup data in a rewritable manner. The program storedin the ROM 971 of the cartridge 817 is loaded to the WRAM 922, and thenimplemented by the CPU core 921. The WRAM 922 stores temporary dataobtained by the CPU core 921 implementing the program or data forgenerating images.

The I/F circuit 927 is connected to a touch panel 913, an operatingswitch section 914 (including, e.g., power button 34, cross-shapeddirectional control button 36, start button 38, select button 40, andX/Y/A/B buttons 42), a loudspeaker 915, and wireless communicationcircuitry 916 that enables wireless communication with, among otherthings, wireless LAN access point(s). These wireless access points canprovide, among other things, a connection to the Internet. The accesspoints may be provided in public areas (e.g., stores, libraries, sportsarenas, stadiums, public transportation vehicles such as buses andtrains, airplanes, etc.) or in offices or homes. For example, in a homeenvironment, the access point may be embodied as a computer that isconnected to the Internet via, for example, a dial-up connection or acable modem. In alternative implementations, wireless or wiredcommunication circuitry may be connected to the portable display devicevia one of cartridge slots (e.g., slot 58 or slot 64). For example, thecommunication circuitry may be embodied in a cartridge adapted to fit inone of these slots. This communication circuitry may, for example,connect by wired link to the public switched telephone network or to alocal area network to thereby provide Internet access. In otherimplementations, the communication circuitry may wirelessly connect to abase station of a mobile telephone network through which a connection tothe Internet may be established.

The first GPU 924 is connected to a first video RAM (VRAM) 923, and thesecond GPU 926 is connected to a second VRAM 925. The first GPU 924,responsive to an instruction from the CPU core 921, generates a firstimage (such as a game image or web page image) based on data forgenerating an image stored in the WRAM 922, and renders the generatedimage on the first VRAM 923. The second GPU 926, responsive to aninstruction from the CPU core 921, generates a second image (such as agame image or web page image) based on data for generating an imagestored in the WRAM 922, and renders the generated image on the secondVRAM 925.

The first VRAM 923 is connected to the first LCD 32, and the second VRAM925 is connected to the second LCD 88. The first GPU 924 outputs thefirst image rendered on the first VRAM 923 to the first LCD 32. Thefirst LCD 32 displays the first image outputted from the first GPU 924.The second GPU 926 outputs the second image rendered on the second VRAM925 to the second LCD 88. The second LCD 88 displays the second imageoutputted from the second GPU 926.

Additional details regarding the above-described game apparatus may befound in U.S. Publication Nos. 2005-0227761; 2005-0164794; and2005-0159223 and application Ser. Nos. 10/921,921 and 11/127,297, thecontents of each of which are incorporated herein in their entirety.

While using the product 1 shown in FIG. 1 (or in FIGS. 2-4), errors mayoccur. When such errors occur, a message may be output via outputdevice(s) 7 of the product. In the following description, it will beassumed that the product includes (or is connected to) a display screenon which an error message is displayed. The error message providesinformation which may include, but is not limited to, the error,possible causes of the error, possible solutions for the error, and anerror code.

In accordance with one example of the error code implementationdescribed herein, a unique error code is generated for each product oruser. For example, if the user's unique identifier is a number such as123456, the error code generated would be the user's unique identifierfollowed by the standard error number for the error that has occurred.If the standard error number is “005”, the error code obtained byconcatenating this error number with the user's unique identifier wouldbe “123456005”.

The error code is not limited to being a concatenation of two or moreerror code components such as a user's unique identifier and an errornumber, but may be some other combination obtained by operations such asmathematical or logical operations on the components. For example, thecomponents and the numbers therein could be reordered, and compressed byusing a base-36 number, which would enable the use of alphanumericcodes.

The unique error code may also include additional and/or alternativeinformation embedded therein. For example, a checksum number to performerror detection and/or correction may be included. The user identifiercould also be replaced by or augmented with a product identifier (code)or, in the context of a network, all or part of a Media Access Control(MAC) address for the product. In particular, a supplier of a productmay use Ethernet hardware from a same vendor. In this case, it would beunnecessary to transmit the portion of the MAC address that representsthe vendor code. In the context of a game device, the unique error codecould include an identifier for a game being played when the erroroccurred.

Thus, by way of example without limitation, an error code may be aconcatenation, or logical or arithmetic combination, of one or more ofan error number, a user identifier, a product identifier, all or part ofa MAC address, a game identifier, error detection information and errorcorrection information.

The unique error code could be presented to customer service (whichcould be a live customer service representative, or a voice responseunit, or a website). Customer service could then rapidly identify theuser from the user database and identify the error for the particularproduct being used. Automated queries could then take place based onthis error code to identify the source of the problem. An appropriatesolution could be returned to the user.

By way of example with reference to FIG. 5, assume a user uses the gamemachine 10 of FIGS. 2-4 to connect to a game server 502 in order to playan online game either with a game-server generated opponent or withanother player whose game machine 11 (which also may be of the typeshown in FIGS. 2-4) is also connected to game server 502. Game server502 may include, or have access to, other systems or servers providingfeatures for the online gaming system. For example, game server 502 mayinclude or have access to an invitation server that enables a player toinvite other player(s) to play a particular game. The game server mayinclude or be connected to a customer service system 504 to deal withuser inquiries regarding errors or service problems.

While playing a game using the online system, errors may occur. Whensuch errors occur, typically a game will display a message on the screendescribing the error and possible causes and solutions and an errornumber. With reference to FIG. 6, and an example message 602 might be:

“Error: User authentication failed. Invalid password. Error: 123456005”

In the above scenario, the user's unique identifier is “123456” and thenormal error number associated with an invalid password is “005”. Thus,the user-specific error code shown in the above message is obtained byconcatenating the user's unique identifier and the normal error number.

As noted above, the user-specific error code may include additionalinformation embedded therein to perform error detection (such as achecksum number) or to perform error correction. The user identifiercould also be replaced by or augmented with one or more of a hardwareidentifier or product identifier or all or part of MAC address of theuser's game device, which also could uniquely identify the user. Theuser-specific error code could be reordered, and compressed by using abase-36 number, which would enable the use of alphanumeric codes.Further information could be appended to this user-specific error codethat would identify the game being played.

The customer service system generally includes an input section that issupplied with an error code generated as described herein. The code maybe supplied to the input section by a customer service representative,or via a website, for example. A processing section of the customerservice system uses the error code to provide information to the userrelating to the error.

By way of further example, in the error case described above, when theuser accesses customer service system 504 and provides the unique errorcode thereto either via a customer service representative, avoice-activated response system or a website, the customer servicesystem 504 checks a user database (which may be maintained in the gameserver 502, for example) for user “123456” to see which password theuser attempted to use on the last login (i.e., the login that failed).If the password used was once a valid password, and the user recentlychanged the password, the customer service system 504 could return aresponse to the user such as “The password you entered is no longervalid, because you changed your password on Dec. 21, 2004. Please useyour new password to log in.” Thus, the user-specific error code can beused to generate a response that is specific to a particular user (e.g.,the user changed passwords on a particular date).

While certain systems and methods have been described in connection withexample embodiments and implementations, it is to be understood thatvarious modifications and equivalent arrangements of these systems andmethods are included within the spirit and scope of the appended claims.

1. A method for generating an error code comprising: detecting an errorcondition of a product; and generating an error code by combininginformation indicative of the detected error condition with anidentifier associated with the product, wherein the identifieridentifies a particular user of the product.
 2. The method according toclaim 1, wherein the identifier identifies both the product and a userof the product.
 3. The method according to claim 1, wherein theidentifier identifies a model of the product.
 4. The method according toclaim 1, wherein the combining comprises concatenating the informationindicative of the detected error condition and the identifier associatedwith the product.
 5. The method according to claim 1, wherein thecombining comprises arithmetically combining the information indicativeof the detected error condition and the identifier associated with theproduct.
 6. The method according to claim 1, wherein the combiningcomprises logically combining the information indicative of the detectederror condition and the identifier associated with the product.
 7. Themethod according to claim 1, wherein the information indicative of thedetected error condition comprises an alphanumeric string.
 8. A systemfor generating an error code comprising: a detector for detecting anerror condition of a product; and an error code generator for generatingan error code by combining information indicative of the detected errorcondition with an identifier associated with the product, wherein theidentifier identifies a particular user of the product.
 9. The systemaccording to claim 8, wherein the identifier identifies both the productand a user of the product.
 10. The system according to claim 8, whereinthe identifier identifies a model of the product.
 11. The systemaccording to claim 8, wherein the combining comprises concatenating theinformation indicative of the detected error condition and theidentifier associated with the product.
 12. The system according toclaim 8, wherein the combining comprises arithmetically combining theinformation indicative of the detected error condition and theidentifier associated with the product.
 13. The system according toclaim 8, wherein the combining comprises logically combining theinformation indicative of the detected error condition and theidentifier associated with the product.
 14. The system according toclaim 8, wherein the information indicative of the detected errorcondition comprises an alphanumeric string.
 15. A customer servicesystem comprising: an input section supplied with an error codeincluding information indicative of an error condition of a product andan identifier associated with the product; and a processor that uses theinformation indicative of the error condition and the identifier toprovide information for the product relating to the error condition,wherein the identifier identifies a particular user of the product. 16.A computer-readable storage medium storing a computer program executedby a processor and causing a computer to perform: detecting an errorcondition of a product; and generating an error code by combininginformation indicative of the detected error condition with anidentifier associated with the product, wherein the identifieridentifies a particular user of the product.